昨天使用 Simple Linear Regression 模型擬合 CDF 分布,可以看到因為是線性回歸所以會呈現一條斜線。今天簡單地介紹另一個模型稱為 神經網路(Neural Network),近幾年非常火紅的技術,涉及各種領域 e.g., 語音、影像、資安..等等,可說是當紅炸子雞呀 !
神經網路,又稱為人工神經網路,我們人類的神經系統由許多的神經元所組成,它用來組織、協調各身體的肌肉與器官。對於新的事物、事情,我們人類需要時間學習,例如 : 學習打籃球,一開始不太會運球、投籃,但是,當我們不斷地練習,越來越熟悉各式各樣的動作,我們的神經反應越來越靈敏,拿到球就順勢運球,空檔出來就投籃。這就是神經網路的概念,自主學習,也有人把神經網路稱作一個黑盒子,我們不需要知道內部構造,只需給予輸入值、輸出值,便自動訓練並學習完成。
神經網路模型主要可以分成好幾個部分,Neuron、Activation Function、Forward-Propagation、Backward-Propagation :
神經元,人類的神經網路是由好幾個神經元組成,那神經網路模型呢 ?
神經網路的模型也是如此,神經元只儲存參數,主要有兩個參數 : 權重, 偏差值。一個神經網路模型,不是只有一個神經元,可以有好幾個,一般都用層數來表示神經網路模型,建置了多少層的模型,每層的神經元個數有多少。
激勵函數,每個神經元後面都會接一個激勵函數,為甚麼需要激勵函數 ?
激勵函數為非線性函數,將神經元的輸出值轉換成另一個非線性值,如果沒有激勵函數,輸入與輸出依舊處於線性關係,對於許多相較複雜的資料像是圖像、影音是很難學習的。
正向傳播,每一層每個神經元的輸出值傳至下一層,直到最後一層的輸出層。
反向傳播,經由正向傳播後,計算其預測結果與真實值的誤差,進行反向的更新,更新神經元的參數,達到誤差最小化。這是神經網路的精隨,如果沒有反向傳播,神經網路便無法自主學習 ~
明天來實作 NN並進行測試 ~ 先降 ~ 掰噗 !